Как использовать httpie?
April 26, 2020
HTTPie (эйч-ти-ти-пай) — современная, удобная и кросс-платформенная альтернатива cURL. Он спроектирован для максимально комфортного взаимодействия с веб-сервисами.
Из терминала он вызывается как http и позволяет делать HTTP-запросы с помощью достаточно естественного синтаксиса без запоминания кучи флагов. Его, в основном, используют для отладки — неважно, http серверов, веб-сервисов или rest api.
- HTTPie имеет интуитивный интерфейс
- отлично поддерживает json
- форматирует и подсвечивает вывод терминала
- поддерживает https, прокси, аутентификацию
- поддерживает формы и загрузку файлов
- можно посылать любые запросы и заголовки
- умеет загружать файлы, как wget
Установка
Debian-like
apt-get install httpieMac
brew install httpieWindows
pip install --upgrade httpieКак использовать?
http [опции/флаги] [http-метод] URL [параметры]Самый простой пример использования:
http https://wcademy.ru
Указание http метода
http get https://wcademy.ruСкачивание файла
http http://placekitten.com/200/300 > 300.jpgили
http --download http://placekitten.com/200/300В этом примере мы использовали сервис placekitten. Он возвращает фотку рандомного котэ с указанным размером.
Загрузка файла
Для примера, загрузим файл на filebin:
http https://filebin.net/ < 300.jpgОтправка формы
Дальше мы будем использовать сервис httpbin.org. Он позволяет отправлять на себя любые http запросы, и возвращает осмысленные ответы. На его главной странице есть его swagger-спецификация.
http --form POST https://httpbin.org/post name=wcademyПросмотр деталей запроса
Для того, чтобы проверить, что конкретно отправляется можно добавить флаг -v:
http -v --form POST https://httpbin.org/post name=wcademy
Базовая аутентификация
http -a admin:pass https://httpbin.org/basic-auth/admin/passГде admin — имя пользователя, а pass — пароль. Мы их дважды пишем в запросе. После флага -a — те, которые отсылаются, а в /admin/pass те, относительно которых httpbin будет проверять наш логин-пароль. Можете попробовать отправить другой пароль и закономерно получите 401 UNAUTHORIZED.
Кастомные HTTP заголовки
Также можно отправить произвольный заголовок в формате «Заголовок:Значение».
Заключение
Ну как? Удобно же? Возможно, кто-то предпочтёт что-то более гуевое, но httpie — лучшее что есть в консоли, и точно гораздо удобнее, чем старый добрый curl. Продолжить знакомство с httpie можно с его справки:
http --helpНу и, конечно, на официальном сайте или их гитхабе.